Compiler Compatibility
Introduction With Symbian OS being fully open source, we need to make sure that anyone in the world can work with Symbian with completely free tools on their chosen platform. For historical reasons the Symbian platform is currently compiled with RVCT 2.2, a proprietary C++ compiler from ARM Limited. Some progress has been made to get the Symbian platform compiled with RVCT 4, which can be licensed for individuals and small companies of up to 20 people at no cost for Symbian development. But what we really want is to be able to compile the Symbian platform with an open source C++ compiler, such as GCC. To facilitate this process we have set up the Software Freedom Fighters incubation project. In a nutshell Applying a new compiler to an existing codebase always seems to involve issues arising throughout the codebase, so many packages show problems with either GCCE or RVCT4 or both. The aim is to restate the troublesome pieces of code in such a way that they conform more strictly to the relevant C or C++ standard: all of the compilers will then agree on what the code actually means, and compile it correctly. Some of the problems that occur are singular in nature, such as the support necessary from build tools like SBSv2 (Raptor) or the kernel. One enhancement to Raptor might improve the build results for all packages. The singular GCCE issues are discussed in more detail in The GCCE toolchain initiative. Other problems are instances of the same underlying pattern; these patterns are described in more detail below. In these cases, there would only be one report raised per package, which may cover one or more pattern. How you can help The good news is that compiler work can be done in a distributed way, which makes it ideal for implementation by an open source community. Many compilation bugs - but not all - can be fixed by somebody who does not understand the platform well. Even if you do not fix bugs, you could help by providing compiler expertise and advising others: check out how you can do this. As the necessary changes are small but widely spread, it will be possible to take on an amount of work that is compatible with the time you have available. If you make changes, you will be able to "make your mark" on the platform as one of the early contributors to the platform. The following article shows how this may benefit you. The Symbian Build and Integration team will support the work by providing centralised building and publishing services, but any developer will be able to contribute to the effort by fixing some of the compatibility issues that exist. That is why were planning to set up an incubation project. We will be working hard to make this process as easy as possible. As a result expect that this page will change and improve significantly in the next few weeks. Recording and tracking the problems Bugzilla, the bug tracker, is the tool for reporting compatibility problems and tracking them. It's also used to liaise with the package owners when it's time to incorporate the changes into the master codeline for the package. Raising bugs * All issues reported regarding compiler compatibility should have a severity of "Enhancement". This is because it's not actually a bug that the code does not support an unsupported compiler! * The bugzilla reports should also be tagged with the keyword Compiler_Compatibility to make searching eaiser. The current situation The following dynamic bugzilla query shows all reports tagged with Compiler_Compatibility. RVCT 4.0 issues GCC issues See the Software Freedom Fighter project TODO list. Errors already solved Supporting each other and getting help Many of the compiler issues are trivial, while others may require compiler expertise or some research to be resolved. To enable the community to help each other, or share your findings we created the mailing list: compiler-compatibility@lists.symbian.org. Compiler-compatibility provides a link to the archives and RSS feed of the list. As with all mailing lists you will need to subscribe before you can use it. This avoids that the list is abused by spammers. You can send directly to compiler-compatibility@lists.symbian.org, but you won't receive any mail and a moderator will need to approve the message. General information about the mailing list is available in Using Mailing Lists Quick Start. The CompilerCompatibility branch and build We created a compiler branch and build to help with the compiler work. Common failures and Known fixes RVCT issues Compiler Compatibility/RVCT GCC issues Compiler Compatibility/GCCE See also * The GCCE toolchain initiative, for particular issues with building the kernel with GCCE Category:Open Source Category:Builds